package com.hyperf.core.lock.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 分布式锁注解
 *
 * @author lizhaoyang
 */
@Target(value = {ElementType.METHOD})
@Retention(value = RetentionPolicy.RUNTIME)
public @interface DistributedLock {

    /**
     * 锁KEY 默认包名+方法名
     */
    String key() default "";

    /**
     * 过期时间 单位：毫秒
     */
    long expire() default 30000L;

    /**
     * 获取锁超时时间 单位：毫秒
     */
    long acquireTimeout() default 30000L;
}
